package controller;

import java.util.ArrayList;
import java.util.List;

import dao.ItemVendaDao;
import dao.ItemVendaDaoImplementation;
import dao.ProdutoDao;
import dao.ProdutoDaoImplementation;
import entity.ItemVenda;
import entity.Produto;

public class ItemVendaController {
			
		public void salvarItemVenda(ItemVenda itemVenda)
		{
			ProdutoDao produtoDao = new ProdutoDaoImplementation();
			Produto produto = produtoDao.getProduto(itemVenda.getProduto().getIdProduto());
			
			Integer estoqueAtual = Integer.parseInt(produto.getEstoque());
			if (estoqueAtual < itemVenda.getQuantidade()){
				throw new IllegalArgumentException("estoque indisponivel");
			}
			
			ItemVendaDao dao = new ItemVendaDaoImplementation();
			dao.save(itemVenda);
		}
		
		public void editarItemVenda(ItemVenda itemVenda)
		{
			ItemVendaDao dao = new ItemVendaDaoImplementation();
			dao.update(itemVenda);
		}
		
		public void excluirItemVenda(ItemVenda itemVenda)
		{
			ItemVendaDao dao = new ItemVendaDaoImplementation();
			dao.delete(itemVenda);
		}
		
		public void consultarItemVenda(ItemVenda itemVenda)
		{
			ItemVendaDao dao = new ItemVendaDaoImplementation();
			dao.consult(itemVenda);
		}
		
		public ItemVenda getItemVendaById(long idItemVenda){
				ItemVendaDao dao = new ItemVendaDaoImplementation();
				return dao.getItemVenda(idItemVenda);
		}

		public List<ItemVenda> listarItemVenda(){
			List<ItemVenda> listaItemVenda = new ItemVendaDaoImplementation().list();

			listaItemVenda = new ArrayList<ItemVenda>(listaItemVenda);

			return listaItemVenda;
		}
}

